package com.zzl.cwlyxt.util;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.concurrent.atomic.AtomicLong;

/**
 * @author ShiChaojie
 * @date 2024/1/3 10:49
 */
public class OrderGenerator {
    private static final AtomicLong sequence = new AtomicLong(1);

    public static long generateOrderNumber() {
        // 获取当前时间
        LocalDateTime now = LocalDateTime.now();

        // 定义日期时间格式
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");

        // 将日期时间格式化为指定格式并转换为 long 类型
        long formattedDateTime = Long.parseLong(now.format(formatter)) * 1000;

        // 获取递增的序列号（这里简单地使用AtomicLong进行递增）
        long seq = sequence.getAndIncrement();

        // 生成订单号（时间戳 + 序列号）
        return formattedDateTime + seq;
    }
}
